package com.tjmc.recruit.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tjmc.recruit.admin.api.dto.PlatUserDTO;
import com.tjmc.recruit.admin.api.dto.UserDTO;
import com.tjmc.recruit.admin.api.dto.UserInfo;
import com.tjmc.recruit.admin.api.entity.PlatformUserInfoEntity;
import com.tjmc.recruit.common.core.util.R;

import java.util.Map;

public interface PlatformUserInfoService extends IService<PlatformUserInfoEntity> {
    /**
     * 新增平台用户
     *
     * @param user 用户信息
     * @return
     */
    boolean saveUser(PlatformUserInfoEntity user);

    /**
     * 注册平台用户
     *
     * @param userDto
     * @return
     */
    R<Boolean> registerUser(PlatUserDTO userDto);

    /**
     * 查询平台用户信息
     *
     * @param userInfo 用户基本信息
     * @return
     */
    UserInfo findUserInfo(PlatformUserInfoEntity userInfo);

    /**
     * 修改用户手机号
     *
     * @param phone   变更后手机号
     * @param valCode 验证码
     * @param sync    是否同步更新
     * @return
     */
    R<Boolean> changePhone(String phone,String newPhone, String valCode, Boolean sync);

    /**
     * 修改用户名或密码
     * @param userName 用户名
     * @param valCode 验证码
     * @param newPassword 密码
     * @return
     */
    R<Boolean> changeUserNameOrPassword(String userName, String valCode, String newPassword);

    /**
     * 修改用户微信号
     * @param wxUserNo 微信号
     * @return
     */
    R<Boolean> changeWxUserNo(String wxUserNo);

    /**
     * 充值用户密码
     * @param userInfo 用户信息
     * @return
     */
    R<Boolean> resetPassword(PlatformUserInfoEntity userInfo);

    Map<String, String> loginWithWeChat(String code);

    String decryptPhoneNumber(String sessionKey, String encryptedData, String iv);
}
